<?php
class SeguimientosController extends AppController {

	var $name = 'Seguimientos';
	var $uses = array('Seguimiento','Estudiante','CentroApoyoEscolare','Departamento','UsersEquiposOperativo','Zona', 'Municipio', 'EquiposOperativo', 'Departamento', 'User', 'Familiare', 'Group');
	var $helpers = array('Access');
	
	function index($estudiantes = null) {

		$this->Seguimiento->recursive = 0;
		$this->set('seguimientos', $this->paginate());
        
		$usuario = $this->Access->getMy('id');
		$nombre_usuario = $this->User->read('nombre_completo',$usuario);
		$nombre_usuario['nombre_user'] = $nombre_usuario['User']['nombre_completo'];
					
		$grupo = $this->Access->getMy('group_id');
		$nombre_grupo = $this->Group->read('nombre',$grupo);
		$nombre_grupo['nombre'] = $nombre_grupo['Group']['nombre'];

		$estudiante_presente = $this->Estudiante->find('first',array('conditions'=>array('Estudiante.id'=>$estudiantes)));
		
		//	Si es diferente a Administador
		if($nombre_grupo['nombre'] != "Administrador"){
			$this->set('seguimientos', $this->paginate('Seguimiento', array('Seguimiento.estudiante_id'=>$estudiantes, 'AND' =>array('Seguimiento.user_id'=>$usuario))));				
		}else{ //Es administrador
			$this->set('seguimientos', $this->paginate('Seguimiento', array('Seguimiento.estudiante_id'=>$estudiantes)));
		}

	//	$nombre_user_seguimiento = $this->
		
		$estudiante_id = $estudiantes;		
		$this->set(compact('seguimientos','estudiante_presente','nombre_grupo','nombre_usuario','estudiante_id' ));
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid seguimiento', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('seguimiento', $this->Seguimiento->read(null, $id));
	}

	function add($estudiante =null) {
		//Va a guardar
		if (!empty($this->data)) {
			$this->Seguimiento->create();
			if ($this->Seguimiento->save($this->data)) {
				$this->Session->setFlash(__('El seguimiento ha sido guardado', true));
				$this->redirect(array('action' => 'index', $this->data['Seguimiento']['estudiante_id']));
			} else {
				$this->Session->setFlash(__('The seguimiento could not be saved. Please, try again.', true));
			}
		}
		$estudiante = $this->Seguimiento->Estudiante->find('first', array('conditions'=>array('Estudiante.id'=>$estudiante)));
		$users = $this->Seguimiento->User->find('list', array('fields'=> array('User.id','User.nombre_completo')));
		
		$grupo = $this->Access->getMy('group_id');
		$nombre_grupo = $this->Group->read('nombre',$grupo);
		$nombre_grupo['nombre'] = $nombre_grupo['Group']['nombre'];
		$this->set(compact('estudiante', 'users','nombre_grupo'));
	}

	function edit($id = null,$estudiante = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid seguimiento', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			//va ha actualizar
			if ($this->Seguimiento->save($this->data)) {
				$this->Session->setFlash(__('El seguimiento ha sido actualizado', true));
				$this->redirect(array('action' => 'index', $this->data['Seguimiento']['estudiante_id']));
			} else {
				$this->Session->setFlash(__('The seguimiento could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->Seguimiento->read(null, $id);
		}
		$estudiante = $this->Seguimiento->Estudiante->find('first', array('conditions'=>array('Estudiante.id'=>$estudiante)));
		$users = $this->Seguimiento->User->find('list', array('fields'=> array('User.id','User.nombre_completo')));
		$this->set(compact('estudiante', 'users'));
	}

	function delete($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for seguimiento', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Seguimiento->delete($id)) {
			$this->Session->setFlash(__('Seguimiento deleted', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Seguimiento was not deleted', true));
		$this->redirect(array('action' => 'index'));
	}
	
    function seguimientos_caes() {
    	$grupo = $this->Access->getMy('group_id');
		$nombre_grupo = $this->Group->read('nombre',$grupo);
		$nombre_grupo = $nombre_grupo['Group']['nombre'];
		$caes;
		if($nombre_grupo != "Administrador"){			
			//Se traen los que son de Docentes
			$caes = $this->Estudiante->CentroApoyoEscolare->find('all',array('conditions'=>array('CentroApoyoEscolare.user_id'=>$this->Access->getMy('id'))));
			// Si no hay CAES asignados al usuario se traen los del Equipo Operativo			
			if(empty($caes)){
				$eo = $this->UsersEquiposOperativo->find('first',array('conditions'=>array('UsersEquiposOperativo.user_id'=>$this->Access->getMy('id'))));
				$eo = $eo['UsersEquiposOperativo']['equipos_operativo_id'];				
				$caes = $this->Estudiante->CentroApoyoEscolare->find('all',array('conditions'=>array('CentroApoyoEscolare.equipos_operativo_id'=>$eo)));				
			}			
		}else{
			//Se traen todos los CAES
			$caes = $this->Estudiante->CentroApoyoEscolare->find('all');
		}
		
		foreach ($caes as &$cae):
			$zona = $this->Zona->read('municipio_id',$cae['EquiposOperativo']['zona_id']);
			$municipio = $this->Municipio->read('nombre',$zona['Zona']['municipio_id']);
			$cae['nombre_equipo'] = $municipio['Municipio']['nombre'];
		endforeach;				
	
		$this->set(compact('caes'));	
    	 	
	}
	
    function seguimientos_estudiantes($caes = null){
    	
    	$estudiantes = $this->paginate('Estudiante', array('Estudiante.centro_apoyo_escolare_id'=>$caes));
    	$cae_presente = $this->CentroApoyoEscolare->find('first',array('conditions'=>array('CentroApoyoEscolare.id'=>$caes)));
		$docente = $this->User->find('first',array('conditions'=>array('User.id'=>$caes)));
    		
		$this->set(compact('estudiantes', 'cae_presente', 'docente'));
    	
    }   
}
?>